﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Threading.Tasks;
using Video.Application.Contract.Base;
using Video.Application.Contract.UserInfos.Dtos;
using Video.Application.Contract.Videos.Dtos;

namespace Video.Application.Contract.UserInfos
{
    public interface IUserInfoService
    {
        /// <summary>
        /// 登录账号获取用户信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<UserInfoRoleDto> LoginAsync(LoginInput input);

        /// <summary>
        /// 获取用户信息
        /// </summary>
        /// <returns></returns>
        Task<UserInfoRoleDto> GetAsync();

        /// <summary>
        /// 编辑用户信息
        /// </summary>
        /// <returns></returns>
        Task UpdateAsync(UpdateUserInfo input);

        /// <summary>
        /// 注册账号
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<UserInfoRoleDto> RegisterAsync(RegisterInput registinput);
        /// <summary>
        /// 获取用户分页
        /// </summary>
        /// <param name="getListInput"></param>
        /// <returns></returns>
        Task<PageResultDto<UserInfoDto>> GetListAsync(GetListInput getListInput);
        Task DeleteAsync(IEnumerable<Guid> guid);
        /// <summary>
        /// 是否启用禁用
        /// </summary>
        /// <param name="guid"></param>
        /// <param name="enable"></param>
        /// <returns></returns>
        Task EnableAsync(IEnumerable<Guid> guid , bool enable = true);
       
    }
}
